package com.yanchi;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Description
 *
 * @author Administrator
 * @date 2021/10/9 11:54
 */
public class Slf4jToLog4j2 {

    // 3、集成 slf4j 日志门面
    @Test
    public void test3(){
        Logger logger = LoggerFactory.getLogger(Slf4jToLog4j2.class);

        logger.trace("trace 信息");
        logger.debug("debug 信息");
        logger.info("info 信息");
        logger.warn("warn 信息");
        logger.error("error 信息");

    }

    // 4、日志文件输出
    @Test
    public void test4(){
        Logger logger = LoggerFactory.getLogger(Slf4jToLog4j2.class);

        logger.trace("trace 信息");
        logger.debug("debug 信息");
        logger.info("info 信息");
        logger.warn("warn 信息");
        logger.error("error 信息");

    }

    // 5、日志拆分
    @Test
    public void test5(){
        Logger logger = LoggerFactory.getLogger(Slf4jToLog4j2.class);

        for (int i = 0; i < 2000; i++) {
            logger.trace("trace 信息");
            logger.debug("debug 信息");
            logger.info("info 信息");
            logger.warn("warn 信息");
            logger.error("error 信息");
        }
    }

    // 6.1、异步日志
    @Test
    public void test6_1(){
        Logger logger = LoggerFactory.getLogger(Slf4jToLog4j2.class);

        // 日志部分
        for (int i = 0; i < 50; i++) {
            logger.trace("trace 信息");
            logger.debug("debug 信息");
            logger.info("info 信息");
            logger.warn("warn 信息");
            logger.error("error 信息");
        }

        // 业务逻辑部分
        for (int i = 0; i < 10; i++) {
            System.out.println("----------------------------------------");
        }
    }

    // 6.2.1、全局异步
    @Test
    public void test6_2_1(){
        Logger logger = LoggerFactory.getLogger(Slf4jToLog4j2.class);

        // 日志部分
        for (int i = 0; i < 50; i++) {
            logger.trace("trace 信息");
            logger.debug("debug 信息");
            logger.info("info 信息");
            logger.warn("warn 信息");
            logger.error("error 信息");
        }

        // 业务逻辑部分
        for (int i = 0; i < 10; i++) {
            System.out.println("----------------------------------------");
        }
    }

    // 6.2.2、混合异步（com.yanchi）
    @Test
    public void test6_2_2(){
        Logger logger = LoggerFactory.getLogger(Slf4jToLog4j2.class);

        // 日志部分
        for (int i = 0; i < 50; i++) {
            logger.trace("trace 信息");
            logger.debug("debug 信息");
            logger.info("info 信息");
            logger.warn("warn 信息");
            logger.error("error 信息");
        }

        // 业务逻辑部分
        for (int i = 0; i < 10; i++) {
            System.out.println("----------------------------------------");
        }
    }

    // 6.2.3、混合异步（org.slf4j）
    @Test
    public void test6_2_3(){
        Logger logger = LoggerFactory.getLogger(Logger.class);

        // 日志部分
        for (int i = 0; i < 50; i++) {
            logger.trace("trace 信息");
            logger.debug("debug 信息");
            logger.info("info 信息");
            logger.warn("warn 信息");
            logger.error("error 信息");
        }

        // 业务逻辑部分
        for (int i = 0; i < 10; i++) {
            System.out.println("----------------------------------------");
        }
    }


}
